#ifndef _UTILTARGETBITS_H_
#define _UTILTARGETBITS_H_




#define 	OS_WINDOWS				0
#define 	OS_NATIVE				10
#define 	OS_POSIX				20
#define 	OS_MAC					30

#define 	CC_MSVC					0
#define 	CC_GCC					1


#define 	ARCH_32BIT				32
#define 	ARCH_64BIT				64

#define		TARGET_X86				0
#define		TARGET_NOT_X86			1
#define		TARGET_X64				2

#ifdef _MSC_VER
	#define 	TARGET_OS		   OS_WINDOWS
	#define 	CPP_COMPILER 	   CC_MSVC
#endif

#ifdef __GNUC__
	#define 	TARGET_OS		   OS_POSIX
	#define 	CPP_COMPILER	   CC_GCC	
#endif

#ifdef _MAC
	#define 	TARGET_OS		   OS_MAC
	#define 	CPP_COMPILER 	   CC_XCODE
#endif 
 


#if (defined(i386) || defined(_i386) || defined(__i386) || defined(__i386__)) || (defined(_WIN32)) || defined(_M_IX86)
	#define		TARGET_BITS				ARCH_32BIT
#endif

#if defined(_WIN64) || defined(__x86_64__) || defined(_M_X64)
	#undef		TARGET_BITS
	#define		TARGET_BITS				ARCH_64BIT
#endif


#if !defined(TARGET_BITS)
	#define		TARGET_BITS				ARCH_32BIT
#endif


#endif